// 设置环境变量
process.env.NODE_ENV = 'development';

import { spawn } from 'child_process';
import { fileURLToPath } from 'url';
import path from 'path';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

console.log('启动开发服务器...');

// 在Windows上使用cmd.exe启动命令
const isWin = process.platform === 'win32';
const npmCmd = isWin ? 'npm.cmd' : 'npm';

// 启动Vite服务器
const vite = spawn(npmCmd, ['run', 'dev'], {
  stdio: 'inherit',
  env: {
    ...process.env
  }
});

// 等待Vite服务器启动
setTimeout(() => {
  console.log('启动Electron...');
  
  // 启动Electron
  const electron = spawn(npmCmd, ['run', 'electron-run'], {
    stdio: 'inherit',
    env: {
      ...process.env,
      NODE_ENV: 'development'
    }
  });

  electron.on('error', (err) => {
    console.error('启动Electron失败:', err);
    vite.kill();
    process.exit(1);
  });

  electron.on('exit', (code) => {
    console.log('Electron已退出，代码:', code);
    vite.kill();
    process.exit(code || 0);
  });
}, 5000); // 给Vite 5秒钟启动时间

// 处理进程终止
process.on('SIGINT', () => {
  vite.kill();
  process.exit(0);
});

process.on('SIGTERM', () => {
  vite.kill();
  process.exit(0);
}); 